Techniques, such as graphical analysis and simulation may be used in modeling, design, analysis, and/or synthesis of engineered systems. These techniques may provide various classes of graphical models to describe computations that can be performed on application specific or general purpose computational hardware, such as a computer, microcontroller, field-programmable gate array (FPGA), or custom hardware. Classes of such graphical models may include time-based block diagrams, state-based and flow diagrams, entity flow network diagrams, and/or data-flow diagrams. A common characteristic among these various classes of graphical models is that they can define semantics that determine how a diagram is executed.
Graphical modeling has spawned a variety of software products that cater to various aspects of dynamic system analysis and design. Such products allow users to perform various types of tasks including constructing system models through a user-interface that allows drafting graphical models, allowing augmentation of a pre-defined set of blocks used in block diagrams with users' custom-built blocks, using the graphical model to compute and trace the temporal evolution of the dynamic system's outputs (“executing” the graphical model), and automatically producing either deployable software systems or descriptions of hardware systems that mimic the behavior of either the entire model or portions of it.